package com.meng.springpreventaop.prevent.controller;

import com.meng.springpreventaop.prevent.aop.Prevent;
import com.meng.springpreventaop.prevent.common.Response;
import com.meng.springpreventaop.prevent.dto.RequestDto;
import org.springframework.web.bind.annotation.*;

/**
 * 测试防刷（切面实现入参校验）
 */
@RestController
@RequestMapping("/prevent")
public class PreventController {
    /**
     * 测试防刷
     * @param dto
     * @return
     */
    @ResponseBody
    @GetMapping(value = "/testPrevent")
    @Prevent //加上该注解即可实现短信防刷(默认一分钟内不允许重复调用，支持扩展、配置）
    public Response testPrevent(RequestDto dto) {
        return Response.success("调用成功");
    }


    /**
     * 测试防刷
     *
     * @param dto
     * @return
     */
    @ResponseBody
    @PostMapping(value = "/testPreventIncludeMessage")
    @Prevent(message = "20秒内不允许重复调多次", value = "20")
    public Response testPreventIncludeMessage(RequestDto dto) {
        return Response.success("调用成功");
    }
}
